본문으로 건너뛰기

내부 데이터 적재

내부 데이터는 조직 내의 데이터를 말한다. 노동자라면 직장 내의 데이터를 말한다. 학교의 교수 또는 선생님이라면 학교 내의 학생으로 부터 수집한 데이터가 될 것이다. 유통회사의 직원이라면 상품의 판매, 배송, 재고 데이터가 될 것이다.

회사내의 데이터는 데이터를 관리하는 부서 또는 담당자의 협조를 받아서 데이터를 가져올 수 있는 경우가 많다.

보통은 두가 가지 형태를 취하게 된다

앞서 말했듯이 분석하는 사람이 속한 조직에 담당 데이터 엔지니어에게 데이터를 얻기, 직접 데이터 소스에서 접근해서 데이터를 추출하기를 할 수 있다. 데이터 엔지니어가 분석 일을 겸한다면 수월하게 입수할 것이다.

데이터 엔지니어에게 데이터를 얻기

보통 원하는 데이터를 요청하면 담당자 데이터를 원하는 포맷으로 제공해주는 절차를 가지고 있을 것이다.

예를들면 다음과 같은 형식이다.

“3월달의 서울 지역 전체 상품의 판매 내역을 주세요. 항목은 금액, 수량, 판매일자, 판매점, 상품코드입니다.” 그러면 CSV로 줄까요. Excel 파일로 전달할 것이고 보통의 경우라면 역시 Excel이나 구글 시트에 데이터를 올려서 분석할 것이다. 이때 받은 파일을 스프레드시트나 분석 도구를 이용하지 않고 Python notebook을 이용해서 분석할 수 있는데 여러분이 이 책을 통해서 배우고 하게 될 것이다.

직접 데이터 소스에서 접근해서 데이터를 추출하기

회사의 데이터 접근 프로세스가 기민하고 빠르고 절차보다는 행동 중심적이라면 아마도 데이터에 접근할 수 있는 계정을 제공한 뒤에 알아서 가져가도록 할 수도 있다. 보통은 데이터베이스 계정을 제공하거나 데이터 어낼리틱스 시스템의 계정을 주는데 데이터베이스 계정은 SQL 언어를 사용할 수 있어야 하며 데이터 어낼리틱스 시스템의 계정은 웹 브라우저 또는 클라이언트로 접근할 수 있는 계정을 준다. 보통은 마우스를 이용해서 추출 조건을 설정하고 CSV나 Excel 파일로 추출(export) 또는 다운로드(download) 할 수 있도록 해준다.

SQL

외국에서는 주로 시퀄이라고 읽고 한국에서는 에스큐엘이라고 읽는 사람이 많다. 둘 다 맞는는 것이다. SQL은 데이터베이스에 접근하기 위한 표준 언어인데 IBM에서 처음 개발했고 현재는 데이터베이스를 다루는데 사용하는 대표적인 데이터 관리 언어이다.

데이터를 분석하는데 반드시 SQL을 배워야 하는가?

이 질문은 SQL이라는 다소 난해한 컴퓨터 언어를 배우는 것이 부담이 되거나 가능하면 배우지 않고 Python 또는 다른 데이터 분석 도구만으로도 데이터를 분석할 수 있다면 그렇게 하고 싶은 의도가 있을 것이다.

이 질문은 오랫동안 논쟁이 되었다. 수십년동안 SQL을 배우지 않고도 데이터를 분석할 수 있는 다양한 도구들이 만들어지고 시도도 있어왔다. 이런 도구들이 SQL을 사용하지 않고도 데이터를 분석할 수 있게 했지만 결국 복잡한 데이터 처리를 할 때는 SQL을 사용할 수 밖에 없고 가치있는 사실을 알아내기 위해서 데이터 분석을 여러 각도로 기민하게 하고 시행착오를 반복하려면 직접 SQL을 배워서 원하는 데이터를 원하는 형태로 추출하고 가공하는 것이 필요하게 된다. 많은 시행착오를 하는데 데이터 추출 요청을 매번 담당자에게 할 수는 없다. 하루에도 수십번 요청을 하는 것은 현대의 데이터 입수 절차에서는 더 이상 좋은 방법이 아니다.

답을 말한다면 반드시 필수로 배워야 한다고는 할 수 없지만 데이터를 제대로 다루려면 SQL을 배워야 한다. AI를 사용해서 추출하거나 AI에게 SQL을 작성하게 하면 배우지 않아도 된다고 생각할 수 있지만 AI가 항상 올바른 결과를 주는 것은 아니기 때문에 결국 데이터 추출 과정에서 오류가 발생할 수 있고 데이터 추출 과정에서 오류가 발생하면 그 결과는 데이터 분석 결과에 영향을 줄 수 있다.

따라서 데이터 분석을 정확하게 하려면 데이터 추출 과정에서 오류가 발생하지 않도록 하고 데이터 추출 과정에서 오류가 발생하면 그 결과를 올바르게 수정할 수 있는 능력이 필요하다. 결국 SQL을 배워야 한다. 이 책은 SQL책이 아니므로 SQL을 배우는 것에 대한 내용은 다루지 않지만 중간에 SQL을 활용한 코드를 설명할 것인데 SQL에 대한 간단한 설명은 그때 할 것이다.